The use of computers to create documents for printing is well known, as is the use of high-resolution output devices, such as laser printers and prepress systems. Despite the fact that computers and high-resolution output devices are commonly connected, the two types of devices have inherent incompatibilities that have chronically troubled computer and printing companies.
For ease of description, all letters, numbers, punctuation marks, graphic elements and symbols that are supported by a given font are collectively referred to herein as “characters”. Well-known data formats, such as PostScript and TrueType, have been developed for storing and representing characters and are in widespread use. In these formats, the shape of each character is described using vectors and/or curves, making the characters highly scalable. High-resolution output devices, such as laser printers and prepress systems typically are designed to use these data formats. The resolution of such systems is usually 300 dots per inch (“dpi”) or higher.
By contrast, a computer monitor displays characters as a set of pixels on the monitor screen. The typical computer monitor has a resolution of either 72 or 96 pixels per inch (“ppi”). For the purpose of this discussion, a 72-ppi monitor will be discussed although persons skilled in the art will appreciate that the invention can be readily applied to monitors of other resolutions.
The computer monitor inherently renders characters that are approximations of the same characters rendered by a high-resolution output device. Therefore, high-n resolution characters must typically be either rounded up or rounded down to the next closet pixel for rendering on a 72-ppi device. Rasterization and scaling programs are in common use to convert characters from their high-definition vector description to a bitmap for computer display.
Referring to FIG. 1, an illustrative example is shown. In this example, the character A, if rendered by a high-resolution system would have the width Y. For the purpose of this illustration, width Y is assumed to be 89 dots at a resolution of 300 dpi. Width Y in this case is equal to 21.36 pixels. For displaying the character on a computer screen, the character size would need to be expressed as an integer number of pixels. In this case, it would typically be rounded down to 21 pixels, represented by width X in FIG. 1.
The result, as shown in FIG. 1, is that the width of the character A is less when rendered on a monitor than the same character in the same font and point size would be if rendered on a print medium. With other characters, other fonts, or other point sizes, the size of the character displayed on the monitor could have been larger. For example, if the width Y of character A had been 90 dots, instead of 89 as shown in FIG. 1, the equivalent width in pixels would have been 21.6. This would typically have been rounded up to 22, resulting in the A displayed on the screen being wider than the printed A.
The cumulative effect of these slight shifts in character width are sufficient to make the size of character strings displayed on the screen an unreliable indicator of the size of the same character strings on the printed page. As an example of the potential result of this cumulative effect, FIG. 2A shows several character strings authored in Microsoft Word 2000 in HTML “Web Layout” mode. The lengths of all of the character strings are approximately equal when viewed in HTML. FIG. 2B shows these same character strings when printed on a laser printer. As can be seen, the same character strings have widely varying lengths when rendered on a high-resolution device.
For certain type of applications, it is highly desirable that the printed image be substantially identical to the image that the computer user sees on the user's monitor screen. Having the printed image look like the monitor image is commonly known as “what you see is what you get”, abbreviated as WYSIWYG. WYSIWYG is available to computer users in modern word processing, desktop publishing, and other computer applications, but has not been achieved in some circumstances. Hypertext Markup Language, commonly known as HTML, is one well-know example of an area where WYSIWYG has been elusive.
HTML is the standard language used to create documents on the World Wide Web (the “Web”) today. As such, businesses wishing to communicate with their customers or potential customers on the Web must typically deal with their customers, at least in part, in HTML. As is well known, computer users can use a browser, such as Microsoft Internet Explorer or Netscape Navigator, to locate, download and display web pages to the user.
Originally, HTML pages were static displays intended simply for viewing. Modern browsers support enhancements of HTML functionality, such as XML and Dynamic HTML (DHTML), which allow for HTML pages to be revised and manipulated on the browser itself. Tools for creating documents in a browser are known in the art. One prior art system for performing browser-based document creation and editing is disclosed in U.S. Pat. No. 6,247,011 entitled Computerized Prepress Authoring for Document Creation, which is hereby incorporated by reference. Software programs, such as the Web Capture component of Adobe Acrobat, that perform the task of converting a document created in HTML into a high resolution format reflecting what the document will look like when rendered on a high resolution device are commercially known and available.
For the reasons discussed above, when a document that was created on a computer screen in HTML is printed on a high-resolution output device, the printed product normally does not look exactly like the HTML image on the computer screen. This is a particularly serious problem if the computer user is expressly trying to print an image exactly as it appears on the screen. For example, the user may have precisely aligned lines of text only to find that they are misaligned in the printed version. This has severely limited the usefulness of HTML for many printing applications.
Various techniques have been used in the prior art to try to work around this HTML-to-print problem. One prior art technique involves incorporating bitmaps into the HTML page being viewed by the user. For example, after a user inputs text into an HTML form, the form is transmitted over a network to a server where the data is used to generate a bitmap image. The bitmap image is then transmitted back over the network to the user's computer for the user to view. The user typically has little or no ability to modify the bitmap images, so if the user is not satisfied with the bitmap image, new sets of data must be sent to the server where a new bitmap image must be generated and again sent over the network to the user. As can be appreciated, this prior art technique can cause repetitive network traffic to and from the user's computer during the document preparation process. The system may lead to user frustration if the user experiences transmission delays or is dissatisfied that the bitmap image returned from the server does not reflect the user's desired document appearance, requiring reentry of text by the user.
Another prior art technique involves doing a “screen capture” operation that results in the reproduction of the screen faithfully on the print medium. This method has the drawback of rendering the screen in a pixilated fashion. In other words, because the screen image has a resolution of only 72 or 96 ppi, while the typically high resolution printer has a resolution of 300 dpi or higher, the character from the screen will not be rendered smoothly, but will appear on the printed page with rough or jagged lines and edges, as can be seen in the example of the bottom A in FIG. 1. This makes the printed image unsatisfactory for most applications.
In the printing field, it is well known that adjustment of the spacing between some characters can have a beneficial effect on the appearance of the characters. Commercially available rendering tools, therefore, typically provide for some user control of character spacing. Two common prior art spacing techniques are kerning and tracking.
Kerning is the adjustment of the spacing between specific letter pairs to improve the appearance of the pair and reduce the perception of unevenness that certain pairs of letters create. Kerning generally involves only reducing the space between the characters in the pair. The set of character pairs that would benefit from kerning depends on the specific font being used. The font software typically includes pre-set kerning tables and also allows the user to add additional character pairs or otherwise do customized kerning.
Tracking refers to the addition or deletion of a uniform amount of space between every character pair. Developers of font software often employ a default character spacing that is based on appearance and readability of the font at a common point size, such as 12. The same spacing may not, however, be optimum in all cases, such as when the user elects to use a significantly smaller or significantly larger point size. It is generally accepted that the readability of smaller type sizes can be improved by making the space between each character relatively larger. Similarly, the readability of larger type sizes can be improved by making the space between each character relatively smaller.
Despite the desirability of WYSIWYG printing and the extensive development and use of the Web and related systems, the problem of HTML-to-print incompatibilities has continued to trouble Web developers and users. As can be appreciated from the discussion above, it would be highly desirable to provide a system and method whereby a user can use the browser to create an HTML document and have the document be rendered on a print medium in a WYSIWYG manner.